سخت افزار :
DirectX 10 و Windows Graphic Foundation 2.0 اسامی هستند که می توانند انقلاب جدیدی را در گرافیک های سه بعدی و بازی های پیشرفته کامپیوتری نوید دهند. هنگام عرضه Windows Vista در ابتدای سال جاری میلادی ما شاهد حضور API جدید شرکت Microsoft یعنی DirectX 10 بودیم که استانداردهای موجود برای پردازش سه بعدی و تجربه چند رسانه ای کاربران را به سطح جدیدی ارتقا داده است. هرچند زمان زیادی از معرفی DirectX 10 می گذرد، اما ناگفته های زیادی در رابطه با این API بنیادی وجود دارد که در این مقاله به بررسی آنها پرداخته شده است.
حافظه مجازی در DirectX 10
API یا واسط نرم افزاری DirectX از مجموعه ای از اینترفیس ها تشکیل شده است که مشخص می کنند توسعه دهندگان بازی ها و نرم افزارهای مختلف چگونه باید با سخت افزار به صحبت بپردازند. نوشتن یک برنامه برای یک API استاندارد بسیار ساده تر از نوشتن و بهینه سازی همان برنامه برای اجرا بر روی سخت افزارهای خاص است. به منظور هرچه یکپارچه تر کردن سخت افزار و نرم افزار، مایکروسافت یک بازنگری کلی را بر روی DirectX اعمال کرده است. از آنجایی که این API در طول زمان حیاط Windows Vista به عنوان پایه و اساس توسعه و اجرای هر نرم افزار و یا سخت افزار جدیدی مورد استفاده قرار خواهد گرفت، Microsoft سعی کرده است با ارایه برخی از مشخصات پیشرو و کاملا جدید و علاوه بر آن ساده سازی این API به برنامه نویسان امکان دهد تا با سرعت و سهولت بتوانند با دریافت حداکثر کارایی از سخت افزارهای PC ، نرم افزارها و بازی هایی با کیفیت و کارایی بالا را طراحی کنند.
Direct3D قسمتی از DirectX است که مستقیما بر اجرا و عملکردهای نرم افزارهای سه بعدی نظارت دارد. در حقیقت مهمترین بخش DirectX ، Direct3D است. بزرگترین تحولات صورت گرفته در DirectX 10 نیز مستقیما به Direct3D مربوط می شود. Direct3D 10 با یکپارچه کردن دستورالعمل ها و استاندارد نمودن مشخصات سایه زن های قابل برنامه نویسی، برنامه نویسان را از شر سایه زن هایی که هر سازنده به صورت اختصاصی طراحی و روانه بازار می کرد رها می سازد. بعلاوه مایکروسافت در مدل درایورهای مربوط به کارت های گرافیک و نمایشگرها نیز تجدید نظر کرده است.
به این خاطر که در Windows Vista تمام دسکتاپ به صورت سه بعدی به نمایش در می آید، کارت گرافیک دیگر تنها برای بازی کردن مورد استفاده قرار نمی گیرد. هنگامی که شما یک صفحه نمایش سه بعدی دارید و هر برنامه را در صفحه سه بعدی مربوط به خودش اجرا می کنید، درایورهای کارت گرافیک باید به اندازه کافی با ثبات و انعطاف پذیر باشد تا بتواند نقش پردازنده گرافیکی را افزایش دهد. به همین منظور مایکروسافت تصمیم گرفته است تا درایورها را به دو بخش مجزا تقسیم نماید. یک بخش برای اجرای دسک تاپ و بخش دیگر برای اجرای نرم افزارها و بازی های سه بعدی. این تقسیم بندی برای افزایش ثبات زیر سیستم گرافیکی طراحی شده است و به سیستم عامل امکان می دهد حتی در صورتی که یک برنامه کاربردی و یا بازی سه بعدی به علت خطاهای نرم افزاری و یا سخت افزاری متوقف می شود، همچنان و با وجود یک دسکتاپ کاملا سه بعدی قابل استفاده و با ثبات باقی بماند. وجود چنین نوآوری هایی همچنین به این معنی است که مایکروسافت DirectX 10 را برای Windows XP ارایه نخواهد کرد، به خاطر اینکه بسیاری از پیشرفت های صورت گرفته در Direct3D 10 مستقیما به مشخصات مدل جدید درایور کارت گرافیک Windows Vista نیاز خواهد داشت.
استفاده وسیع تر از توانایی های کارت گرافیکی برای اجرای کاربردهای مختلف، نیاز به اختصاص منابع سیستمی بیشتر از سوی سیستم عامل به آن را دارد. سیستم عامل باید به کاربرها امکان دهد تا بتوانند سخت افزار را به نحو موثرتری به اشتراک بگذارند. بزرگترین تغییر در این زمینه در Windows Vista تکنولوژی است که با نام Virtualized Memory و یا حافظه مجازی شناخته می شود. از این پس کارت گرافیک فضای حافظه اختصاصی خود را در حافظه سیستم خواهد داشت. این حافظه اختصاصی می تواند برای ذخیره داده هایی که دارای اندازه بزرگتر از حافظه محلی کارت گرافیک هستند مورد استفاده قرار گیرد. هم اکنون کارت های گرافیکی گران قیمت و سطح بالا معمولا با حافظه هایی به میزان 256 یا 512 مگابایت عرضه می شوند. اما بازی ها میتوانند به سادگی تمامی حافظه موجود را برای ذخیره قطعات بسیار بزرگ داده، مانند بافت های با وضوح بسیار بالا، مورد استفاده قرار دهند.
مدیر عامل شرکت Epic Games که به تازگی موتور بسیار قدرتمند Unreal Engine 3.0 را معرفی کرده و در حال توسعه عناوین معروفی چون UT2007 و Gears of War می باشد، در این باره می گوید: « تکنولوژی هایی مانند بافت گذاری مجازی ( Virtual Texturing ) می تواند گلوگاه های مرتبط با اندازه بافت ها را در حافظه های گرافیکی بر طرف نماید. اندازه بافت هایی را که ما در DirectX 9.0 می توانستیم با حفظ کارایی کامل استفاده کنیم به وسیله حجم حافظه محلی کارت گرافیکی محدود شده بود، اما در DirectX 10 حجم آنها تنها توسط اندازه حافظه سیستم محدود خواهد شد. او توضیح می دهد که با در اختیار داشتن چنین امکاناتی، سطح استفاده از بافت ها در بازی ها و نرم افزارهای سه بعدی بین 2 تا 4 برابر افزایش خواهد یافت که این برای کسانی که از موتور Unreal Engine 3.0 برای توسعه بازی های خود استفاده می کنند بسیار عالی است. هرجا که طراح بخواهد می تواند از بافت هایی با کیفیت و وضوح بالا، برای مثال در وضوح 2048 x 2048 پیکسل، استفاده کند و سپس آنها را برای اجرا بر روی سیستم های با قدرت پایین تر به اندازه های کوچکتری مقیاس دهی کند. »
کارت های گرافیکی برای تطابق با استاندارد های DirectX 10 و افزایش کارایی نیاز به رعایت نکات دقیقی دارند. کارت های گرافیک باید دارای مجموعه کاملی از مشخصات باشند تا بتوانند تاییدیه های DirectX 10 را بدست آورند. البته این استاندارها به طور کامل با آنچه که در نسل فعلی کارت های گرافیکی شاهد آن هستیم متفاوت نخواهند بود. برای مثال کارت هایی که از DirectX 9.0c و یا سایه زن های نسخه 2 پشتیبانی کنند می توانند از بسیاری از توابع موجود در DirectX 10 نیز پشتیبانی کنند. اما Microsoft مشخصه های کاملا دقیقی را اعلام کرده است تا سازندگان مختلف پردازنده های گرافیکی مجبور به ساخت سخت افزارهای سازگار با یکدیگر شوند. برای مثال تفاوت های موجود در واحد های ممیز شناور پردازنده های گرافیکی مختلف شرکت های ATI و nVIDIA توسعه دهندگان بازی را برای سازگار کردن موتور بازی با هر دو نوع پردازنده گرافیکی تحت فشار قرار میداد، اما مشخصه های تعریف شده در DirectX 10 کمک بزرگی به حذف اینگونه ناسازگاری ها در سخت افزارهای مختلف و در نتیجه کاهش هزینه و زمان توسعه نرم افزار برای کار با آنها خواهد کرد.
دیگر ویژگی های DirectX 10
مایکروسافت مشخصه های لازم برای طراحی پردازنده های سازگار با Direct3D 10 را سریع اعلام کرد تا سازندگان پردازنده های گرافیک بتوانند هرچه زودتر کارت های گرافیکی مطابق با آن را ارائه دهند. با توجه به نکات گفته شده توسعه دهندگان نرم افزار دیگر مجبور نخواهند بود تا هنگام عرضه هر پردازنده گرافیکی جدیدی، محصولات خود را با آن منطبق کنند. طبق گفته های مایکروسافت تنها هنگام ارایه DirectX 11 آنها نیاز به ایجاد تغییرات در نرم افزارهای خود را خواهند داشت و تا پیش از آن هر نرم افزاری که برای کار با DirectX 10 طراحی شده باشد می تواند بدون اعمال هیچگونه تغییری از تمامی مشخصه های آن پشتیبانی نماید. البته شاید هرگز نتوان جلوی نوشتن کدهای بهینه شده برای یک پردازنده گرافیکی خاص را گرفت و ممکن است همچنان شاهد مشخصه های اضافی عرضه شده از طرف شرکتهای مخلف سازنده سخت افزار باشیم که توسعه دهندگان مختلف ممکن است تمایل به پشتیبانی از آنها را داشته باشند. اما بی شک نسل آینده نرم افزارها و سخت افزارهای سه بعدی بیش از پیش یکپارچه خواهند شد و رقابت آنها در ارائه ویژگی ها و قابلیت های فراتر از ملزومات DirectX 10 خواهد بود.
طبق اظهارات Microsoft ، DirectX 10 می تواند با مدیریت هوشمندتر منابع، افزایش بازده API و انتقال بیشتر بار کاری از CPU به پردازنده گرافیک، کارایی را در بازی های مختلف از 6 تا 8 برابر افزایش دهد. البته این امر اندکی اغراق آمیز به نظر می رسد اما مسلما شاهد افزایش زیادی در کارایی خواهیم بود. برای این منظور DirectX 10 و معماری خط لوله های پردازشی در داخل پردازنده گرافیک برای به حداقل رساندن بار کاری بر روی CPU و زیر سیستم حافظه، مجددا از ابتدا طراحی شده اند. مهمترین موضوعی که در این زمینه مد نظر طراحان قرار داشته است، افزیش کارهایی بوده که پردازنده گرافیکی قادر است بدون نیاز به گفتگو با CPU انجام دهد. به همین دلیل هنگامی که نیاز به استفاده از CPU داشته باشیم، خواهیم توانست به شکلی بسیار سریع و موثر از آن استفاده کنیم.
در ادامه مواردی را که سبب افزایش کارایی هنگام استفاده از DirectX 10 میشود را ذکر میکنیم:
• با استفاده از بافرهای جدید برای مقادیر، بازده عملیاتی سایه زن ها هنگام ارسال و دریافت داده های مورد نیاز مانند مکان نورها، مشخصات مواد و غیره، افزایش خواهد یافت. علاوه بر این با حذف داده های زاید، حجم عظیمی از نقل و انتقال های موجود بین API و درایور حذف خواهد گردید. این امر به میزان قابل توجهی باعث کاهش فراخوان داده ها توسط API و از بین بردن بار اضافی بر روی پهنای باند حافظه شده و اجازه خواهد داد تا اعمالی که قبلا نیاز به گفتگو میان API و درایور داشتند، در سطح درایور انجام شوند.
• با استفاده از آرایه های جدید بافت گذاری، پردازنده گرافیک خواهد توانست تا به طور شناور موارد استفاده از بافت را تغییر داده و بدون نیاز به فراخوانی و یا ذخیره، آن را مجددا مورد استفاده قرار دهد.
• با بررسی داده های مربوط به هر فریم، داده های نا لازم بدون هیچ فعل و انفعالی با پردازنده حذف خواهد شد. تکنیک فوق از تکنیک های بررسی مختصات عمق به صورت سلسله مراتبی برای تشخیص و حذف اشیایی که توسط اشیا دیگر پوشانده شده و قابل دید نیستند استفاده می نماید. این تکنیک قبلا نیز در پردازنده های گرافیکی مختلف مورد استفاده قرار گرفته بود اما مهمترین تفاوت تکنیک فوق با تکنیک های قبلی، بررسی اطلاعات فریم قبلی برای یافت و حذف این اشیا است که نیاز به محاسبات جداگانه برای هر فریم را از بین برده و سربار عملیات را تا حد زیادی کاهش میدهد.
• Direct3D 10 دارای مشخصات منحصر به فردی است که به کاربرها اجازه میدهد آن را با توجه به نیاز خود تنظیم و بهینه کرده و در نتیجه کارایی را در تمام شرایط در سطح بالایی نگه دارند.
• با پشتیبانی از سایه زن های نسخه 4 ( Shader Model 4.0 ) ، پردازنده گرافیکی قادر خواهد بود تا تعداد بسیار بیشتری از دستورالعمل ها را در هر سیکل کلاک انجام دهد. علاوه بر این با استفاده از تعداد زیادی دستور العمل جدید می توان کار بسیار بیشتری را از CPU به پردازنده گرافیکی منتقل کرد.
منبع : سایت سخت افزار
-----------------------------------------------------------------------
لینک شماره 47 : http://www.bobross.com
سایت آقای باب راس که حتما تاکنون یکی از برنامه های لذت نقاشی اون رو از شبکه چهار دیدین ...
لیست کل یادداشت های وبلاگ
جستجو در وبلاگ
عضویت در خبرنامه وبلاگ
آمار بازدیدکنندگان